package edu.sctu.fengleilin.month05.day150531;

import edu.sctu.fengleilin.month05.day150518.Student;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

/**
 * Created by user09 on 2015/5/31.
 */
public class TextMap {

    public Map<String, Student> students;//用来承装学生类型对象

    public TextMap() {
        this.students = new HashMap<String, Student>();//在构造器中初始化students属性
    }

    /*测试添加：输入学生Id，判断是否被占用
    若未被占用，则输入姓名，创建新学生对象，并且添加到Students中
      */
    public void testPut() {

        Scanner console = new Scanner(System.in);//创建一个scanner对象，用来获取输入学生ID和姓名

        int i = 0;
        while (i < 3) {
            System.out.println("请输入学生ID：");
            String ID = console.next();
            //判断该ID是否被占用
            Student st = students.get(ID);

            if (st == null) {
                //提示输入学生姓名
                System.out.println("请输入学生姓名：");
                String name = console.next();
                //创建新的学生对象
                Student newstudent = new Student(ID, name);
                //通过调用student的put方法，添加ID-学生映射
                students.put(ID, newstudent);
                System.out.println("成功添加学生：" + students.get(ID).name);
                i++;
            } else {
                System.out.println("该学生ID已被占用！:");
                continue;
            }
        }
    }

    public void textKeySet() {//测试MAp的keySet方法

        Set<String> KeySet = students.keySet(); //通过KetSet方法，返回Map中的所有“键”的Set集合

        System.out.println("总共有：" + students.size() + "个学生！"); //取得students的容量

        for (String stuId : KeySet) { //遍历KeySet，取得每一个键，再调用get方法取得每个键对应的value
            Student st = students.get(stuId);
            if (st != null)
                System.out.println("学生：" + st.name);
        }
    }

    public static void main(String[] args) {
        TextMap mt = new TextMap();
        mt.testPut();
        mt.textKeySet();
    }
}
